home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib11.dsk
/
SOUTHERN DRAW.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
5KB
|
100 lines
10 REM **********************
11 REM * SOUTHERN DRAW *
12 REM * BY DON O'SHEA *
13 REM * COPYRIGHT (C) 1982 *
14 REM * BY MICRO-SPARC INC *
15 REM * LINCOLN, MA. 01773 *
16 REM **********************
25 D$ = CHR$(4):BELL$ = CHR$(7): TEXT
30 DIM C$(7),D$(2): FOR I = 0 TO 7: READ C$(I): NEXT
35 POKE 232,252: POKE 233,29
40 PRINT D$;"BLOAD ARROW7,A$1DFC"
45 PRINT D$;"BLOAD MOVE.X,A$300"
50 X = 140:Y = 80:H = 3:B% = 1:D = 1:SIZE = 1:C = 128/3.141592654: HCOLOR= H:T = -16301
55 HOME : VTAB 10: HTAB 15: PRINT "SOUTHERN DRAW": HTAB 15: PRINT "BY DON O'SHEA": VTAB 18: PRINT "(C) 1982 BY MICRO-SPARC, INC.": FOR I = 1 TO 2000: NEXT I: GOTO 450
60 VTAB 21: PRINT :X$ = " " + STR$(X):Y$ = " " + STR$(Y): VTAB 22: PRINT "X="; RIGHT$(X$,3);: HTAB 10: PRINT " Y="; RIGHT$(Y$,3);: HTAB 20: PRINT "COLOR:";C$(H): HCOLOR= H: PRINT
65 VTAB 23: PRINT : VTAB 23: PRINT "DRAW:";: IF D = 1 THEN PRINT "OFF";: GOTO 75
70 PRINT " ";: FLASH : PRINT "ON";: NORMAL
75 HTAB 10: PRINT " STEP:";B%;: HTAB 20: PRINT "PENCIL:";SIZE;: PRINT " (Q:HELP)": RETURN
100 REM *******************
105 REM TRAPS
110 REM *******************
115 IF A$ = "G" THEN H = 1: GOSUB 60: RETURN
120 IF A$ = "V" THEN H = 2: GOSUB 60: RETURN
125 IF A$ = "W" THEN H = 3: GOSUB 60: RETURN
130 IF A$ = "O" THEN H = 5: GOSUB 60: RETURN
135 IF A$ = "B" THEN H = 6: GOSUB 60: RETURN
140 IF A$ = "X" THEN H = 0: GOSUB 60: RETURN
145 IF A$ = "F" THEN T = -(32603 +T): POKE T,0: RETURN
150 IF A$ = CHR$(32) THEN D = 3 -D: GOSUB 60:Z = FRE(0): RETURN
155 IF Z >0 AND Z <10 THEN B% = Z: GOSUB 60: RETURN
160 IF A$ = "Y" THEN SIZE = 1: GOSUB 60: RETURN
165 IF A$ = "U" THEN SIZE = 2: GOSUB 60: RETURN
170 IF A$ = "H" THEN SIZE = 3: GOSUB 60: RETURN
175 IF A$ = "J" THEN SIZE = 4: GOSUB 60: RETURN
180 IF A$ = "N" THEN SIZE = 5: GOSUB 60: RETURN
185 IF A$ = "M" THEN SIZE = 6: GOSUB 60: RETURN
190 IF A$ = "P" THEN GOSUB 340: RETURN
195 IF A$ = "R" THEN GOSUB 350: RETURN
200 IF A$ = "L" THEN GOSUB 360: XDRAW 7 AT X,Y: GOSUB 340: RETURN
205 IF A$ = "S" THEN GOSUB 380: RETURN
210 IF A$ = "*" THEN HPLOT X,Y: CALL 62454: XDRAW 7 AT X,Y: RETURN
215 IF A$ = "Q" THEN GOSUB 730: GET E$: POKE -16304,0: HOME : GOSUB 60: RETURN
220 PRINT BELL$;: RETURN
225 PRINT BELL$;: RETURN
300 REM *******************
310 REM SCREEN CONTROL
320 REM SUBROUTINES
330 REM *******************
340 XDRAW 7 AT X,Y: POKE 4,0: CALL 768: XDRAW 7 AT X,Y: RETURN
350 XDRAW 7 AT X,Y: POKE 0,0: POKE 1,64: POKE 2,0: POKE 3,32: CALL 790: XDRAW 7 AT X,Y: RETURN
360 HOME : VTAB 21: INPUT "FILE TO BE LOADED: ";F$
365 IF RIGHT$(F$,1) = CHR$(27) THEN HOME : GOSUB 60: RETURN
370 PRINT D$;"BLOAD";F$;",A$2000": HOME : GOSUB 60: RETURN
380 HOME : VTAB 21: INPUT "FILE TO BE SAVED: ";F$: XDRAW 7 AT X,Y
385 IF RIGHT$(F$,1) = CHR$(27) THEN HOME : GOSUB 60: RETURN
390 PRINT D$;"BSAVE ";F$;",A$2000,L$1FF8": HOME : GOSUB 60: RETURN
400 REM *******************
410 REM MAIN PROGRAM
420 REM KEYBOARD AND PADDLE
430 REM ROUTINES
440 REM *******************
450 HGR : GOSUB 60
460 SCALE= 4
470 ROT= PDL(0)/4: XDRAW 7 AT X,Y
480 Z = PEEK( -16384): POKE -16368,0: IF Z >127 THEN A$ = CHR$(Z -128):Z = VAL(A$): GOSUB 105
490 IF PEEK( -16287) <128 THEN XDRAW 7 AT X,Y: GOTO 470
500 W = PDL(0)/C:X1 = X:Y1 = Y
510 X = X + INT(B% * SIN(W) +.5)
520 Y = Y - INT(B% * COS(W) +.5)
530 IF Y <0 THEN Y = 0: PRINT BELL$;
540 IF X <0 THEN X = 0: PRINT BELL$;
550 IF Y >191 THEN Y = 191: PRINT BELL$;
560 IF X >279 THEN X = 279: PRINT BELL$;
570 GOSUB 60
575 REM *********************
580 REM DRAW ROUTINE (IF D=2)
585 REM *********************
590 IF D = 1 THEN XDRAW 7 AT X1,Y1: GOTO 460
600 IF SIZE = 1 THEN XDRAW 7 AT X1,Y1: HPLOT X1,Y1 TO X,Y: GOTO 460
610 XDRAW 7 AT X1,Y1: SCALE= 1: DRAW SIZE AT X,Y: GOTO 460
700 REM *******************
710 REM PROGRAM COMMANDS
720 REM *******************
730 TEXT : HOME : HTAB 14: PRINT "SOUTHERN DRAW": HTAB 14: PRINT "BY DON O'SHEA"
740 PRINT : INVERSE : PRINT "PENCIL CONTROL";: NORMAL : HTAB (21): INVERSE : PRINT "SCREEN CONTROL": NORMAL
750 PRINT "PADDLE 0 DIRECTS IT P(UT PG1 ON PG2)"
760 PRINT "BUTTON 0 MOVES IT R(ETURN PG2 TO P1)"
770 PRINT "1-9:STEPS PER MOVE L(OAD FROM DISK)"
780 PRINT "SPACE BAR TURNS S(AVE TO DISK)"
790 PRINT "DRAW ON AND OFF F(ULL SCREEN TOGGLE)"
800 INVERSE : PRINT "COLOR CONTROL";: NORMAL : HTAB (21): INVERSE : PRINT "PENCIL SIZES": NORMAL
810 PRINT "W(HITE1) Y:^ U:*^ H:*^ J:*^*"
820 PRINT "O(RANGE) 1 2 ** 3 ** 4 ***"
830 PRINT "B(LUE) ** ***"
840 PRINT "G(REEN) N:5X5 M:7X8"
850 PRINT "V(IOLET) 5 6"
860 PRINT "X:BLACK1"
870 PRINT "*:CLEARS SCREEN Y(SIZE1) DRAWS LINE"
880 PRINT "TO CHOSEN COLOR EQUAL TO # OF STEPS": RETURN
890 DATA BLACK1," GREEN",VIOLET,WHITE1,BLACK2,ORANGE," BLUE ",WHITE2